<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>GROOPS - Basis splines</title>

    <!-- JQuery and Popper -->
    <script src="https://code.jquery.com/jquery-3.4.1.slim.min.js" integrity="sha384-J6qa4849blE2+poT4WnyKhv5vZF5SrPo0iEjwBvKU7imGFAV0wwj1yYfoRSJoZ+n" crossorigin="anonymous"></script>
    <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script>

    <!-- Bootstrap -->
    <!-- https://getbootstrap.com/docs/4.1/examples/ -->
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js" integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6" crossorigin="anonymous"></script>
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">

    <!-- Mathjax -->
    <script type="text/x-mathjax-config">
    MathJax.Hub.Config({tex2jax: {inlineMath: [ ['$','$'] ],
                                  displayMath: [ ["\\[","\\]"] ],
                                  processEscapes: true},
                        TeX:     {Macros: {M: ["{\\mathbf #1}",1]},
                                  equationNumbers: {autoNumber: "all"}  }});
    </script>
    <script async src="https://cdn.jsdelivr.net/npm/mathjax@2.7.7/MathJax.js?config=TeX-AMS_CHTML" integrity="sha384-e/4/LvThKH1gwzXhdbY2AsjR3rm7LHWyhIG5C0jiRfn8AN2eTN5ILeztWw0H9jmN" crossorigin="anonymous"></script>

    <!-- lunr -->
    <script src="https://cdn.jsdelivr.net/npm/lunr@2.3.8/lunr.min.js" integrity="sha384-vRQ9bDyE0Wnu+lMfm57BlYLO0/XauFuKpVsZPs7KEDwYKktWi5+Kz3MP8++DFlRY" crossorigin="anonymous"></script>

    <!-- Mustache -->
    <script src="https://cdn.jsdelivr.net/npm/mustache@4.0.1/mustache.min.js" integrity="sha384-0PLEZVBpOQ+Kqw3anJWSNWvRxpEFt02tSpBvyRsA4WcvX/OTldWdXxGLVLvh954H" crossorigin="anonymous"></script>

    <!-- GROOPS Stylesheet -->
    <link rel="stylesheet" href="static/groops.css"/>

    <!-- icon -->
    <link rel="icon" href="static/groops_icon.png">

</head>
<body>
    <header>
        <nav class="navbar navbar-expand-lg navbar-dark bg-dark">
            <div class="container">
              <a class="navbar-brand" href="index.html"><img class="logo" src="static/groops_white.svg"></a>
              <div class="collapse navbar-collapse" id="mainNavbar">
                <ul class="navbar-nav mr-auto">
                  <li class="nav-item">
                    <a class="nav-link" href="programType.html">Programs</a>
                  </li>
                  <li class="nav-item">
                    <a class="nav-link" href="classes.html">Classes</a>
                  </li>
                  <li class="nav-item">
                    <a class="nav-link" href="general.parser.html">Parser</a>
                  </li>
                  <li class="nav-item">
                    <a class="nav-link" href="general.fileFormat.html">File Formats</a>
                  </li>
                </ul>
              </div>
                <form class="form-inline my-2 my-lg-0" action="search.html" id="searchTools">
                  <input class="form-control mr-sm-2" placeholder="Search" name="searchTerms" method="GET" value="" type="text" id="searchBox">
                  <button class="btn btn-secondary my-2 my-sm-0" type="submit" id="searchButton">Search</button>
                </form>
              <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#mainNavbar" aria-controls="mainNavbar" aria-expanded="false" aria-label="Toggle navigation" style="">
                <span class="navbar-toggler-icon"></span>
              </button>
            </div>
        </nav>
    </header>
    <main class="container px-0 pt-2 top-buffer">
        <div id="content" class="container">
            <h1 id="fundamentals.basisSplines">Basis splines</h1><p>
A time variable function is given by
\[
f(x,t) =  \sum_i f_i(x)\Psi_i(t),
\]with the (spatial) coefficients $f_i(x)$ as parameters and the temporal basis functions $\Psi_i(t)$.
Basis splines are defined as polynomials of degree $n$ in intervals between nodal points in time $t_i$:
<ul>

<li>Block mean values ($n=0$)
\[
  \Psi_i(t) = \begin{cases}
  1 & \text{if } t\in[t_i,t_{i+1}), \\
  0 & \text{otherwise}
\end{cases}
\]</li><li>
Linear splines ($n=1$)
\[
  \Phi_i(t) = \begin{cases}
  \tau_{i-1}   & \text{if } t_{i-1}\le t \le t_i, \\
  1-\tau_i     & \text{if } t_{i}\le t \le t_{i+1}, \\
  0 & \text{otherwise}.
\end{cases}
\]</li><li>
Quadratic splines ($n=2$)
\[
  \Phi_i(t) = \begin{cases}
  \frac{1}{2}\tau^2_{i-1}   & \text{if } t_{i-1}\le t \le t_i, \\
  -\tau^2_{i-1}+\tau_{i-1}+\frac{1}{2}     & \text{if } t_{i}\le t \le t_{i+1}, \\
  \frac{1}{2}\tau^2_{i-1}-\tau_{i-1}+\frac{1}{2}     & \text{if } t_{i}\le t \le t_{i+1}, \\
  0 & \text{otherwise}.
\end{cases}
\]</li><li>
Cubic splines ($n=3$)
\[
  \Phi_i(t) = \begin{cases}
   \frac{1}{6}\tau^3                                                        & \text{if } t_{i-1}\le t \le t_i, \\
  -\frac{3}{6}\tau^3 +\frac{3}{6}\tau^2 +\frac{3}{6}\tau  +\frac{1}{6} & \text{if } t_{i-1}\le t \le t_i, \\
   \frac{3}{6}\tau^3 -            \tau^2                     +\frac{4}{6} & \text{if } t_{i-1}\le t \le t_i, \\
  -\frac{1}{6}\tau^3 +\frac{3}{6}\tau^2 -\frac{3}{6}\tau  +\frac{1}{6} & \text{if } t_{i-1}\le t \le t_i, \\
  0 & \text{otherwise}.
\end{cases}
\]</li></ul>

where $\tau$ is the normlized time in each time interval
\[
  \tau_i = \frac{t-t_i}{t_{i+1}-t_i}.
\]The total number of coefficients $f_i(x)$ is $N=N_t+n-1$,
where $N_t$ is the count of nodal time points $t_i$ and $n$ is the degree.</p><p><figure><img class="figure" style="width:80%;" src="../figures/basissplines.png" alt="basissplines"><figcaption class="center">Figure: Basis splines for different degrees with nodal points every 6 hours.</figcaption></figure>
</p>

        </div>
    </main>
</body>
</html>
